#ifndef APZP1ALGORITHMDESIGNER_H
#define APZP1ALGORITHMDESIGNER_H

#include "AdaptiveAlgorithmDesignerBase.h"

namespace Ui {
class APZP1AlgorithmDesigner;
}

class APZP1AlgorithmDesigner : public AdaptiveAlgorithmDesignerBase
{
    Q_OBJECT

public:
    explicit APZP1AlgorithmDesigner(QWidget *parent = 0);
    ~APZP1AlgorithmDesigner();


    /**
        Wiąże obiekt algorytmu adaptacyjnego z tym widgetem.
        Zadaniem klasy implementującej jest odświeżenie interfejsu użytkownika
        po dołączeniu obiektu, tak by przedstawiał faktyczne ustawienia.
    */
    void attachAlgorithm(RafMat::SimInterface::IConfigurableSPtr ctrl);

    /**
        Zatwierdza zmiany w ustawieniach algorytmu.
        Metoda wywoływana po wciśnięciu odpowiedniego przycisku zatwierdzającego zmiany.
    */
    void applySettings();

private:
    Ui::APZP1AlgorithmDesigner *ui;

    RafMat::SimInterface::IConfigurableSPtr m_targetAlgorithm;
};

#endif // APZP1ALGORITHMDESIGNER_H
